package com.yifang.yibingproject.utils;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 字符串工具类
 */
public class StringUtilOwn extends org.springframework.util.StringUtils {
    /**
     * 判断两个字符串是否不相同
     *
     * @param a
     * @param b
     * @return
     */
    public static boolean notEquals(String a, String b) {
        if (a == null) {
            return b != null;
        } else {
            if (b == null)
                return true;
            else
                return !a.equals(b);
        }
    }

    public static boolean equalsAlsoNull(String a, String b) {
        if (a == null) {
            return b == null;
        } else {
            if (b == null) {
                return false;
            } else {
                return a.equals(b);
            }
        }
    }

    /**
     * 整型列表转字符串，使用#连接元素，列表为空返回#
     *
     * @param list 整型列表
     * @return #连接的字符串
     */
    public static String getListJoinWithSharpToStr(List<Integer> list) {
        if (list == null || list.isEmpty())
            return "#";
        Collections.sort(list);//对列表中的元素从小到大排序
        StringBuilder sb = new StringBuilder("#");
        for (int ele : list) {
            sb.append(ele).append("#");
        }
        return sb.toString();
    }

    /**
     * @param s 字符串中仅包含#和数字，特定场景使用，比如主营类目，一级类目，标签分割使用
     * @return 将带#号的字符串分割并转成整型保存到列表中返回
     */
    public static List<Integer> splitSharpStrToIntList(String s) {
        List<Integer> list = new ArrayList<>();
        if (s != null && s.startsWith("#")) {
            s = s.replaceFirst("[#]", "");
            if (s.length() > 0) {
                String[] split = s.split("[#]");
                for (String s1 : split) {
                    if (s1.length() > 0) {
                        int i = Integer.parseInt(s1);
                        list.add(i);
                    }
                }
            }
        }
        Collections.sort(list);
        return list;
    }

    public static boolean notEmpty(String str) {
        return !isEmpty(str);
    }

    public static String trim(String str) {
        return str == null ? "" : str.trim();
    }
}
